/**
 * Copyright 2008 Hotye Inc.
 */
package craneding.gwt.test.client.jobnotes;

import java.util.Date;

import com.google.gwt.user.client.rpc.IsSerializable;

import craneding.gwt.databean.client.model.EnumType;
import craneding.gwt.databean.client.model.FieldInfo;
import craneding.gwt.databean.client.model.ReflectibleBean;

/**
 * 工单
 * 
 * @author crane.ding
 * @version 1.0 2008-12-5
 */
public class JobNotes implements ReflectibleBean, IsSerializable {

	/**
	 * 工单类型
	 * 
	 * @author crane.ding
	 * @version 1.0 2008-12-7
	 */
	public enum JobNotesTypes implements EnumType<Integer> {
		Snydjfdb(0, "省内异地交罚"), Dzyjfdb(1, "电子眼交罚代办");

		private Integer key;
		private String label;

		private JobNotesTypes(Integer key, String label) {
			this.key = key;
			this.label = label;
		}

		public Integer key() {
			return key;
		}

		public String label() {
			return label;
		}

	}

	/**
	 * 工单状态
	 * 
	 * @author crane.ding
	 * @version 1.0 2008-12-7
	 */
	public enum JobNotesStatus implements EnumType<Integer> {
		Wcl(0, "未处理"), Yfqdb(1, "已发起代办"), Xtk(2, "需退款"), Xbk(3, "需补款");

		private Integer key;
		private String label;

		private JobNotesStatus(Integer key, String label) {
			this.key = key;
			this.label = label;
		}

		public Integer key() {
			return key;
		}

		public String label() {
			return label;
		}
	}

	@FieldInfo(label = "工单编号", length = 12, description = "系统自编码,12位.")
	private Integer id;

	@FieldInfo(label = "工单类型", description = "根据交易类型匹配,如省内异地交罚匹配省内异地交罚工单.")
	private JobNotesTypes type;

	@FieldInfo(label = "交易码", description = " 对应交易系统的交易码,工单系统根据此交易码与交易系统进行匹配,获取对应的交易数据和用户数据.")
	private String transCode;

	@FieldInfo(label = "工单标题", description = "根据交易数据生成,如车业务的规则是'车牌号码＋交易码'.")
	private String title;

	@FieldInfo(label = "工单状态", description = "该工单类型对应的第一个状态.")
	private JobNotesStatus status;

	@FieldInfo(label = "处理人员", description = "根据工单状态对应的工单动作,根据工单动作对应的工单岗位,以平均的规则选择一个操作人员作为此工单的处理人员.")
	private String processors;

	@FieldInfo(label = "工单备注", description = "根据工单交易数据生成工单备注，如交罚交易的规则是“车牌号码＋文书号＋违法日期＋违法地点＋违法行为代码＋违法地市＋交易金额＋交易手机＋银行卡号后8位＋交易日期")
	private String remark;

	@FieldInfo(label = "生成日期", description = "生成此工单的日期.")
	private Date creationDate;

	@FieldInfo(label = "处理状态", description = "待处理.")
	private String processingStatus;

	@FieldInfo(label = "发起人", description = "交易系统.")
	private String sponsor;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public JobNotesTypes getType() {
		return type;
	}

	public void setType(JobNotesTypes type) {
		this.type = type;
	}

	public String getTransCode() {
		return transCode;
	}

	public void setTransCode(String transCode) {
		this.transCode = transCode;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public JobNotesStatus getStatus() {
		return status;
	}

	public void setStatus(JobNotesStatus status) {
		this.status = status;
	}

	public String getProcessors() {
		return processors;
	}

	public void setProcessors(String processors) {
		this.processors = processors;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Date getCreationDate() {
		return creationDate;
	}

	public void setCreationDate(Date creationDate) {
		this.creationDate = creationDate;
	}

	public String getProcessingStatus() {
		return processingStatus;
	}

	public void setProcessingStatus(String processingStatus) {
		this.processingStatus = processingStatus;
	}

	public String getSponsor() {
		return sponsor;
	}

	public void setSponsor(String sponsor) {
		this.sponsor = sponsor;
	}

}
